/*
*   Copyright (C) 2009  Jens Kieselbach
*
*   This program is free software: you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation, either version 3 of the License, or
*   (at your option) any later version.
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You may obtain a copy of the License at http://www.gnu.org/licenses/gpl.html
*/

package de.kieselbach.grootional.script

import java.sql.*
import java.util.logging.*

class ScriptExecutor {

	def connection
	def script
	def logListener
	
	ScriptExecutor(def con, def scrpt, def log = null) {
		
		connection = con
		script = scrpt
		logListener = log
	}
	
	void execute() {
		
		
		int l = script.length()
		int last = 0
		int row = 0
		int col = 0
		//StringBuffer stmt = new StringBuffer()
		
		for(int i=0;i<l;i++) {
			
			def c = script[i]
			col++
			
			if(c == '\n') {
				row++
				col = 0
			}
			else if (c == ';') {
				
				def stmt
				if((i-1) > (last)) {
					stmt = script[last..(i-1)]
				}
				else {
					stmt = ''	
				}
				
				last = i+1
				
				if(logListener != null) {
					logListener(stmt)
					logListener('\n***\n')
				}
		
			}
		}		
		
		
		
	}
}
